package cn.wx.scholar.neo4j.entity;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
import com.alibaba.fastjson.annotation.JSONField;
@NodeEntity(label = "paper")
public class Neo4jPaper extends Neo4jBaseEntity {

	private String title;

	private Long year;

	private String publisher;

	private String keywords;

	/**
	 * 列表页显示
	 */
	private String url;
	
	/**
	 * 详情页显示
	 */
	private String[] urls;
	
	private String authors;
	
	private String fAbstract;
	
	@Relationship(type = "publish1",direction="INCOMING")
	private List<Expert> experts;
	
	private String fPublishDate;
	
	private Integer citations;
	
	/**
	 * JOURNAL_PUBLICATIONS = "1"
		CONFERENCE_PUBLICATION = "3"
	 */
	private String docType;
	
	public String getAuthors() {
		return authors;
	}

	public void setAuthors(String authors) {
		this.authors = authors;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getPublisher() {
		return publisher;
	}

	public Long getYear() {
		return year;
	}

	public void setYear(Long year) {
		this.year = year;
	}

	public void setPublisher(String publisher) {
		this.publisher = publisher;
	}

	public String getKeywords() {
		return keywords;
	}

	public void setKeywords(String keywords) {
		this.keywords = keywords;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	@JSONField(serialize = false)
	private String fos;

	public String getFos() {
		return fos;
	}

	public void setFos(String fos) {
		this.fos = fos;
	}

	public List<Expert> getExperts() {
		return experts;
	}

	public void setExperts(List<Expert> experts) {
		this.experts = experts;
	}
	
	public String getfAbstract() {
		return fAbstract;
	}

	public void setfAbstract(String fAbstract) {
		this.fAbstract = fAbstract;
	}

	public String getfPublishDate() {
		return fPublishDate;
	}

	public void setfPublishDate(String fPublishDate) {
		this.fPublishDate = fPublishDate;
	}

	public Integer getCitations() {
		return citations;
	}

	public void setCitations(Integer citations) {
		this.citations = citations;
	}

	public String getDocType() {
		return docType;
	}

	public void setDocType(String docType) {
		this.docType = docType;
	}

	public String[] getUrls() {
		return urls;
	}
	
	public void setUrls(String[] urls) {
		this.urls = urls;
	}
	
	public String[] getFoSets() {
		if(StringUtils.isBlank(this.fos)) {
			return null;
		}
		String[] foSets_ = this.fos.split(",");
		return foSets_;
	}

}
